[Git]リモートリポジトリの全ブランチをプルする
January 13, 2021 Category: Git
git pullは現在チェックアウトしているブランチしかフェッチしない
ワガハイは仕事でプロジェクトのgitをほとんど1人で操作している(作業者が1人)のですが、頻繁にブランチを切り替えて作業しているためあっちでプッシュしてこっちでプルしてみたいな場面が多くあります。
その中で、ブランチ間をスイッチしながら作業しているとプルして最新のソースで作業していたつもりなのにし損ねていてて混乱することがあります。
なので、もういっそgit pullをgit pull --allにしてしまいましょう。
使用するコマンド
git pull —all
git pull --allはローカルでトラッキングしているブランチをすべてプルしてくれるそうです。
トラッキングしていないブランチもすべてプル
上記の通り、git pull --allはトラッキングしているブランチしかプルしてくれません。トラッキングしていないブランチもすべてプルしたい場合はこちらを実行するようです。
git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
git pull --all※参考にしたStack Overflowの回答者さんはgit pull --allの前に念の為git fetch --allも実行しているそうです。
git pullにはgit fetchも含まれているはずなのでどういう場合の念の為なのかはよくわかりませんが。
エイリアスを作成
今回はgit pull --allだけでいいので、こちらをgit pullに設定します。
設定ファイル
| 影響範囲 | 設定ファイル |
|---|---|
| システム全体 | /etc/gitconfig |
| ユーザー | ~/.gitconfig |
| リポジトリ | リポジトリのルートディレクトリ/.git/config |
設定方法
[alias]
pull = pull --allちなみに/etc/gitconfig/は
git config --global --editで編集可能。
参考
How to fetch all Git branches - Stack Overflow
【git】aliasの設定方法 - Qiita